from datetime import datetime, timezone
import os
from zoneinfo import ZoneInfo
import time
from typing import Dict
import json
import pytest
import allure
from playwright.sync_api import Page
from pytest import Item
from playwright.sync_api import sync_playwright



@pytest.mark.run(order=0)
@pytest.fixture(scope='module')
def session_page(page: Page):
    try:
        print("for each--start: 打开新页面访问登录页")
        page.set_viewport_size({"width": 1980, "height": 1080})
        page.goto("/ins/#/login")  # 登录页面地址
        locator_username = page.get_by_placeholder("账号")
        locator_password = page.get_by_placeholder("密码")
        locator_code = page.get_by_placeholder("请输入验证码")
        locator_login_btn = page.get_by_test_id("login-1004")
        # locator_username.fill("admin")
        # locator_password.fill('Passw0rd@!')
        locator_username.fill("ft_autoTest1")
        locator_password.fill('12345678')
        locator_code.fill('2587')
        locator_login_btn.click()
        # 表示页面在至少500毫秒内没有新的网络请求，或者网络请求的数量低于某个阈值。这通常意味着页面的主要资源已经加载完成，但可能还有一些异步请求在进行中
        page.wait_for_load_state('networkidle')
        time.sleep(2)
    except Exception as e:
        # 如果有异常，打印错误信息
        print(f"发生错误：{e}")
        # 可以选择重新抛出异常，或者返回特定的值
        raise  # 重新抛出当前捕获的异常
    yield page
    page.mouse.move(0, 0)
    # 在当前位置执行点击操作
    page.mouse.click(x=0, y=0)
    page.get_by_test_id("accountmanagement-10004").click()  # 重置按钮


